package day32;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

class Solution {
    public static void main(String[] args) {
        String s="cbaebabacd";
        String p="abc";
        findAnagrams(s, p);
    }
    public static List<Integer> findAnagrams(String s, String p) {
        //使用滑动窗口，规定两个大小相同的数组，存储每个元素的个数
        //创建list
        ArrayList<Integer> list=new ArrayList<>();
        if(s.length()<p.length()){
            return list;
        }
        //遍历求个数
        int[]num1=new int[26];
        int[]num2=new int[26];
        for(int i=0;i<p.length();++i){
            num1[p.charAt(i)-'a']++;
        }
        for(int i=0;i<p.length();++i){
            num2[s.charAt(i)-'a']++;
        }
        //判断两者是否相等
        if(Arrays.equals(num1,num2)){
            list.add(0);
        }
        int index=p.length();
        while(index<s.length()){
            num2[s.charAt(index)-'a']++;
            num2[s.charAt(index-p.length())-'a']--;
            if(Arrays.equals(num1,num2)){
            list.add(index);
        }
        index++;
        }
        return list;
    }
}